In a typical Service Oriented Architecture (SOA), it is possible to have multiple services, such as printing services, display services, music playback services, file storage services, networking services, and the like, collaborating in order to produce a single operation service that can be used via a device, mobile or otherwise (e.g., a cellular telephone, personal digital assistant (PDA), personal computer (PC), laptop, pager, etc.). For example, a room or building may have several speakers (e.g., television, stereo and/or PC speakers) and several music sources (e.g., PC, MP3 player, cell phone, etc.) that could be operated in various combinations with one another in order to provide a music playback service (e.g., the cell phone may use the television speakers to output music). Examples of existing SOA technologies include Web Services (http://www.w3.org), Universal Plug and Play (UPnP) (http:/www.upnp.org), and the Network-on-Terminal Architecture (NoTA) proposed by a consortium of companies including Nokia. NoTA, which is a modular system level device architecture, provides a platform for implementing services and applications, wherein interconnect nodes provide access points by which the services and applications can communicate, as well as a means by which services can register themselves so that their features and functionality are globally available to other services and applications in the system.
Before a service can be used in one of the above, or similar, SOA environments, the service may first need to be discovered and then connected to. In order to be discovered, the service may need to actively register itself and then wait for connections. Currently, a user of a service (e.g., printer service, music playback service, etc.) may be required to query for the service and, in the case of more than one possible service provider, choose one of the service providers before beginning to use the selected service.
While services, as such, are entities that are not bound to any physical device, in many cases the nature of the service is such that it may necessarily be provided by a real world device. For instance, a printing service is expected to produce a hardcopy, a display service should somehow visualize the image, and a keyboard service should let the user type the keys. In addition, it may be that a single device provides multiple services (e.g., a PC that provides file storage service, display service, and networking service), or that a service is provided by multiple devices (e.g., an office building having several printers that can be used for printing services). In general, services are ultimately provided by a device through potentially many levels of indirection, such as service collaboration, software components and the like.
When looking for a particular service in a SOA-like system, such as UPnP, Web Services or NoTA, the user may be faced with a choice of selecting the service, for instance a particular printer service offered from a list of many printer devices. In order to make a reasonable choice the user ideally should either have knowledge that any service is good enough or use some user-specific criteria for selecting the service. For example in case of printers, a printer that is physically near is likely better than another printer in a different building. For services that inherently require hands on operation, like a keyboard service and a display service, the criteria of physical accessibility and proximity (e.g., which way is the display projecting its image) are even more crucial.
It may be that the naming of the services offers some kind of indication of their physical accessibility and proximity, and it may be possible to provide more data for the user about the service at discovery phase, though this may not be feasible to do accurately enough for all services. For example, it may be easy to add information about the room or floor where a printer resides in an office building, but for a keyboard, loudspeaker or display the relevant information may be much harder to produce and keep up to date, since a wireless keyboard may be moved around and displays and loudspeakers are directional to a degree. On the other hand, this kind of meta-information may be very easy for a human to see at a glance.
A need, therefore, exists for a way to identify the devices that are providing a service or services in a manner that is easily perceivable by a human and that allows the human to identify the most suitable alternative based, for example, on physical proximity and accessibility.